package juego.main;


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

/**
 * Esta clase modela el inicio del juego, esto es el panel de opciones 
 * brindado al usuario (si comenzar el juego, salir, ver controles, etc.)
 * @author Latini Macarena
 * @author Rosas Tifany
 */

public class MainPrincipal extends javax.swing.JFrame {
	private JPanel panel;
	private JPanel op; //Panel de opciones.
	protected JLabel inicio;
	protected JLabel fondoOpciones;
	protected JLabel enter;
	protected JPanel panelInstrucciones;


	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				MainPrincipal inst = new MainPrincipal();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
				inst.setPreferredSize(new java.awt.Dimension(714, 711));
				inst.setSize(714, 711);
			}
		});
	}
	
	/**
	 * Constructor.
	 */
	public MainPrincipal() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			{
				panel = new JPanel();
				panel.setLayout(null);
				inicio = new JLabel();
				inicio.setIcon(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/bloques/hongo.gif")));
				inicio.setSize(700,700);
				inicio.setLayout(null);
				
				enter= new JLabel(); //Etiqueda que solicita al usuario
				//que presione enter para comenzar.
				enter.setIcon(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/bloques/enter.gif")));
				enter.setSize(400,200);
				enter.setLocation(7*32, 3*32);
				enter.setLayout(null);
				
				inicio.add(enter);
				panel.add(inicio);
				
				getContentPane().add(panel, BorderLayout.CENTER);
			}
			
			setResizable(false);
			pack();
			this.setTitle("Mario Bros - Options");
			setSize(700, 700);
			
			this.addKeyListener(new KeyAdapter() {
				public void keyReleased(KeyEvent evt) {
				}
				public void keyPressed(KeyEvent evt) {
					thisKeyPressed(evt);
				}
			
			});
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}
	
	/**
	 * Metodo que se ejecuta si se presiona enter.
	 * @param evt KeyEvent.
	 */
	private void thisKeyPressed(KeyEvent evt) {
		if(evt.getKeyCode()==KeyEvent.VK_ENTER)
		{
			fondoOpciones = new JLabel();
			fondoOpciones.setIcon(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/bloques/mariob.jpg")));
			fondoOpciones.setSize(470,353);
			fondoOpciones.setLayout(null);
			//Se crea el panel de opciones.
			op= new JPanel();
			op.setLocation(5*32, 5*32);
			op.setLayout(null);
			
			JButton bt1= new JButton("Start");
			bt1.setSize(120,30);
			bt1.setBackground(Color.blue);
			bt1.setLocation(4*32, 3*32);
			bt1.setLayout(null);
			bt1.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					start(evt);
				}
				//Metodo que comienza el juego.
				private void start(ActionEvent evt) {
					// TODO Auto-generated method stub
					setVisible(false);
					 SoundPlayer s= new SoundPlayer("/juego/musica/musica.mp3");
					 s.play();
				    new PantallaCargandoMain();
				}

			});
			JButton bt2= new JButton("Exit");
			bt2.setSize(120,30);
			bt2.setBackground(Color.blue);

			bt2.setLocation(4*32, 7*32);
			bt2.setLayout(null);
			bt2.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					salir(evt);
				}
				//Metodo que termina el juego.
				private void salir(ActionEvent evt) {
					// TODO Auto-generated method stub
					System.exit(0);
				}

			});

			JButton bt3= new JButton("Controls");
			bt3.setSize(120,30);
			bt3.setBackground(Color.blue);

			bt3.setLocation(4*32, 5*32);
			bt3.setLayout(null);
			bt3.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					controles(evt);
				}
				//Metodo que ofrece al usuario la posibilidad
				//de conocer antes de comenzar a jugar, los controles.
				private void controles(ActionEvent evt) {
					// TODO Auto-generated method stub
					panelInstrucciones= new JPanel();
					
					JLabel instrucciones = new JLabel();
					instrucciones.setIcon(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/bloques/ins.gif")));
					instrucciones.setSize(700,500);
					instrucciones.setLayout(null);
					
					panelInstrucciones.setSize(700, 500);
					panelInstrucciones.setLocation(5*32, 5*32);
					panelInstrucciones.setLayout(null);
					JButton regresar= new JButton();
					regresar.setSize(120,50);
					regresar.setBackground(Color.blue);
					regresar.setLocation(468, 437);
					regresar.setLayout(null);
					regresar.setOpaque(false);
					regresar.addActionListener(new ActionListener() {
						public void actionPerformed(ActionEvent evt) {
							panelInstrucciones.setVisible(false);
							getContentPane().remove(panelInstrucciones);
							op.setVisible(true);
							setSize(470,353);
							setLocation(300, 150);
						}


					});

					instrucciones.add(regresar);
					panelInstrucciones.add(instrucciones);
					op.setVisible(false);
					getContentPane().add(panelInstrucciones);
					setSize(700,530);
					setLocation(200, 120);
				}

			});
			
			fondoOpciones.add(bt1);
			fondoOpciones.add(bt2);
			fondoOpciones.add(bt3);
			op.add(fondoOpciones);
			
			
			
			panel.setVisible(false);
			getContentPane().add(op);
			setSize(470,353);
			setLocation(300, 150);
			
		}

}
	
}